#ifndef MASK_H
#define MASK_H

#include <cmath>

#include "src/scene/color.h"

class Mask {
    public:
        Mask(int = 1, int = 1);
        ~Mask();

        Color getColor() const;
        void setColor(unsigned int _i, unsigned int _j, const Color &_c) {color[_i][_j] = _c;};
        int getM() const {return m;};
        int getN() const {return n;};
        int getA() const {return floor((double)m/2.0);};
        int getB() const {return floor((double)n/2.0);};

        void gaussian(double);
        void laplacian(int, int);
        void weightedAverage();
        void mean();

        void print();

    private:
        double **mask;
        Color **color;
        int m, n;

        void alloc();
};

#endif

